#!/usr/bin/env python
# -*- coding:utf-8 -*-

# file:od_os_path.py
# author:张世航
# datetime:2024/11/1 10:03
# software: PyCharm
"""
练习:  在window平台下运行程序； 练习os.path 相关方法的使用! 观察输出结果;
          1 编写一个程序，运行起来，打印输出此程序文件所在的 文件夹路径；
    2 编写一个程序，在指定目录下，创建一个目录；
          3 列出一个指定目录下的所有文件；
"""
# import module your need

import os


def print_script_folder_path():
    # 获取当前脚本的文件路径
    script_path = os.path.abspath(__file__)

    # 获取文件所在的文件夹路径
    folder_path = os.path.dirname(script_path)

    # 打印文件夹路径
    print("程序文件所在的文件夹路径:", folder_path)


def create_directory_in_path(parent_dir, new_dir_name):
    # 创建目录的完整路径
    new_dir_path = os.path.join(parent_dir, new_dir_name)

    # 检查目录是否存在，如果不存在则创建
    if not os.path.exists(new_dir_path):
        os.makedirs(new_dir_path)
        print(f"目录 '{new_dir_name}' 已成功创建在 '{parent_dir}' 下。")
    else:
        print(f"目录 '{new_dir_name}' 已经存在于 '{parent_dir}' 下。")


def list_files_in_directory(target_dir):
    # 检查目录是否存在
    if os.path.exists(target_dir):
        # 列出目录下的所有文件和子目录
        files_and_dirs = os.listdir(target_dir)

        # 打印文件和子目录的名称
        print("目录 '{}' 下的文件和子目录:".format(target_dir))
        for file_or_dir in files_and_dirs:
            print(file_or_dir)
    else:
        print(f"目录 '{target_dir}' 不存在。")


if __name__ == "__main__":
    # 打印程序文件所在的文件夹路径
    print_script_folder_path()

    # 在指定目录下创建一个目录
    parent_dir = "CreatedDirectory"
    new_dir_name = "MyNewDirectory"
    create_directory_in_path(parent_dir, new_dir_name)

    # 列出一个指定目录下的所有文件
    target_dir = "CreatedDirectory"
    list_files_in_directory(target_dir)